# Object_Oriented
# 三大特征: 封装  继承 和多态
# 多种形态

# 父类的引用 指向 子类的对象
def show_hunt(animal):
    animal.hunt()

class Animal:
    def hunt(self):
        print('Animal hunt')

class Cat(Animal):
    def hunt(self):
        print('Cat hunt')

class Dog(Animal):
    def hunt(self):
        print('Dog hunt')

a = Animal()
show_hunt(a)

c = Cat()
d = Dog()
show_hunt(c)
show_hunt(d)

# python是一门动态语言
# 没有严格意义上的多态
# 推崇的是 鸭子模式
# 鸭子模式  各方面像鸭子,属性,方法




